Conventional inkjet and piezo based printers typically use carriage position encoders implemented by linear optical encoders to determine printer carriage position. A carriage position encoder reads an encoder strip having vertical lines (or any other type of marker) and generates an output containing a sequence of pulses corresponding to the lines (or other markers) that have been read. These pulses are counted to determine carriage position. The sequence of pulses output by the carriage position encoder is also used to synchronize a sequence of printhead firing pulses driving the printheads in the printer carriage.